1. Field of the Invention
This is invention relates in general to parallel processor computer systems, and in particular, to a parallel programming development environment used to program parallel processor computer systems.
2. Description of Related Art
Parallel processor computer systems are frequently comprised of an operating system and arrays of individual computers (i.e., processor nodes), each with their own central processing unit (CPU), memory, and data storage unit. Tasks are executed in parallel by utilizing each processor node.
During the execution of a task, a body of work is divided into multiple threads. A thread is a stream of instructions executed by the computer on behalf of a task. As an analogy, a task such as an orchestra performing a symphony can be decomposed into many threads which would be the individual musicians, each playing their part.
Typically, in a parallel processor computer system, each thread is allocated to a different processor node. Each of these threads is then executed in parallel at their respective separate nodes. For instance, three threads can occupy and execute simultaneously on three different nodes at the same time.
Although parallel processing has merits, there are shortcomings. Conventional processing techniques may result in an inefficient use of the available hardware. Industry standard libraries, such as the Message Passing Interface (MPI) have made parallel programming even more difficult because the MPI standard is programming language dependent. This dependency creates problems for computer systems that perform some of their programming tasks in one language and other tasks in another language, because present day parallel programming efforts will then be unable to interact with programming that is written in two different programming languages. This makes parallel programming efforts more costly and more time consuming.
It can be seen, then, that there is a need in the art for a method to develop parallel programming that can be used with multiple computer programming languages. Further, there is a need for a parallel programming development environment that will be lest costly. There is also a need for a parallel programming development environment that is less time consuming. There is also a need in the art for modifications to conventional techniques that exploit the hardware available in parallel processor computer systems.
To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a method, apparatus, and article of manufacture for creating a parallel programming development environment. The environment comprises a graphical user interface, that contains a system screen, an application screen, a code generator, a process distributor, and an applications monitor. The system and application screens are displayed on the monitor and are used to display the topology of the computer system and for selecting portions of the system for use in a parallel application. The code generator receives a user application file from the application screen and generates programming code based on the contents of the user application file. The process distributor, distributes the executable code within the topology of the computer system as allocated by the user in the application file. The application monitor monitors the user application file and maintains statistics on the user application file.
An object of the present invention is to provide more efficient usage of parallel processor computer systems. Another benefit is higher system availability without undue programming overhead in the application. Still another benefit of the present invention is its ability to provide faster and more cost effective parallel programming development.
These and various other advantages and features of novelty which characterize the invention are pointed out with particularity in the claims annexed hereto and form a part hereof. However, for a better understanding of the invention, its advantages, and the objects obtained by its use, reference should be made to the drawings which form a further part hereof, and to the accompanying detailed description, in which there is illustrated and described specific examples of a method, apparatus, and article of manufacture in accordance with the invention.